package org.zwy.gradetrack.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zwy.gradetrack.entity.Graduate;

import java.util.List;

/**
 * 毕业生Service接口
 */
public interface GraduateService extends IService<Graduate> {

    /**
     * 分页查询毕业生列表
     *
     * @param current 当前页
     * @param size 每页大小
     * @param name 毕业生姓名（可选）
     * @param majorId 专业ID（可选）
     * @return 分页结果
     */
    Page<Graduate> pageGraduates(Integer current, Integer size, String name, Integer majorId);

    /**
     * 创建毕业生
     *
     * @param graduate 毕业生信息
     * @return 是否创建成功
     */
    boolean createGraduate(Graduate graduate);

    /**
     * 更新毕业生信息
     *
     * @param graduate 毕业生信息
     * @return 是否更新成功
     */
    boolean updateGraduate(Graduate graduate);

    /**
     * 删除毕业生
     *
     * @param id 毕业生ID
     * @return 是否删除成功
     */
    boolean deleteGraduate(Integer id);

    /**
     * 根据ID获取毕业生详情
     *
     * @param id 毕业生ID
     * @return 毕业生信息
     */
    Graduate getGraduateById(Integer id);

    /**
     * 根据姓名查询毕业生
     *
     * @param name 毕业生姓名
     * @return 毕业生列表
     */
    List<Graduate> getGraduatesByName(String name);

    /**
     * 根据专业ID查询毕业生
     *
     * @param majorId 专业ID
     * @return 毕业生列表
     */
    List<Graduate> getGraduatesByMajorId(Integer majorId);

    /**
     * 批量导入毕业生数据
     *
     * @param graduates 毕业生列表
     * @return 是否导入成功
     */
    boolean batchImport(List<Graduate> graduates);

    /**
     * 获取所有毕业生列表
     *
     * @return 所有毕业生列表
     */
    List<Graduate> getAllGraduates();
} 